#ifndef STATIC_TRIMESH_H
#define STATIC_TRIMESH_H

#include <ode/ode.h>
#include <GL/glut.h>
#include "Vertex.h"

/// Represents a triangle mesh within the simulation that does not move
class StaticTrimesh
{
public:
	StaticTrimesh();

	/// Create an TriangleMesh comprised of the given verts and indices
	/// @param verts a reference to a vector of vertices that make up the mesh
	/// @param indices a reference to a vector of GLuints that index the vertices
	StaticTrimesh(dSpaceID &space, std::vector<Vertex> &verts, std::vector<GLuint> &indices);
	virtual ~StaticTrimesh();
	
	dTriMeshDataID data;
	dGeomID geom;

	
	std::vector<Vertex> vertices; ///< The verticies that make up the mesh
	
	std::vector<GLuint> indices; ///< The indicies that specify the draw order of the mesh

	unsigned char color[3];

	/// Renders the mesh
	virtual void render();
};

#endif //STATIC_TRIMESH_H